﻿namespace Client
{
    /// <summary>
    /// UI全局屏蔽的原因
    /// </summary>
    public enum EUIGlobalShieldReason
    {
        /// <summary>
        /// 因加载界面需要而屏蔽操作
        /// </summary>
        LoadingUI,

        /// <summary>
        /// 界面消失
        /// </summary>
        DisappearUI,

        /// <summary>
        /// 界面出现
        /// </summary>
        AppearUI,

        /// <summary>
        /// 玩法切换
        /// </summary>
        GameSwitch,

        Count,
    }

    /// <summary>
    /// UI显示分层
    /// </summary>
    public enum EUIShowLayer
    {
        /// <summary>
        /// 主界面层
        /// </summary>
        HUD,

        /// <summary>
        /// 标准弹出式界面层，显示在HUD上方
        /// 新显示的阻挡已显示的
        /// 各种系统玩法
        /// </summary>
        Popup,

        /// <summary>
        /// 模态界面层，显示在Popup上方
        /// 新显示的阻挡已显示的
        /// 玩法确认框
        /// </summary>
        Modal,

        /// <summary>
        /// 系统模态界面层，显示在Model上方
        /// 强制确认框
        /// </summary>
        SystemModal,

        /// <summary>
        /// 用于屏蔽所有触摸
        /// 外界禁止使用
        /// </summary>
        GlobalShiled,

        Count,
    }

    /// <summary>
    /// 新显示界面的入栈方式
    /// </summary>
    public enum EUIStackOp
    {
        /// <summary>
        /// 不影响堆栈
        /// </summary>
        Nothing,

        /// <summary>
        /// 与新显示界面相同EUIShowLayer层级的原栈顶界面，弹出栈
        /// </summary>
        PopSameLayerTop,

        /// <summary>
        /// 与新显示界面相同EUIShowLayer层级的原栈顶界面，显示着被压入栈的深处
        /// </summary>
        DeepSameLayerTopWithShow,

        /// <summary>
        /// 与新显示界面相同EUIShowLayer层级的原栈顶界面，隐藏着被压入栈的深处
        /// </summary>
        DeepSameLayerTopWithHide,

        /// <summary>
        /// 与新显示界面相同EUIShowLayer层级的原栈顶界面，弹出栈
        /// </summary>
        PopLastTop,

        /// <summary>
        /// 与新显示界面相同EUIShowLayer层级的原栈顶界面，显示着被压入栈的深处
        /// </summary>
        DeepLastTopWithShow,

        /// <summary>
        /// 与新显示界面相同EUIShowLayer层级的原栈顶界面，隐藏着被压入栈的深处
        /// </summary>
        DeepLastTopWithHide,
    }
}
